HP caclulators in general use an unusual key-command ordering, called Reverse Polish Notation (RPN), also called postfix notation. If you’re not familiar with RPN, you should get a real HP calculator and read the manual, or you can hack on this version to discover how it works for yourself. In a nutshell, RPN means you must enter the numbers that you want to operate on first, and then push the operation key. For instance, to calculate the value of (8-3)*4, the keys you would push would be 8, ENTER, 3, -, 4, *. When you push the ENTER key, the 8 gets copied from the “x” register to the “y” register (and the rest of the “stack”, which you can’t see, gets pushed up). When you hit “-”, the number in the x register is subtracted from the number in the y register, and the result, 5, is placed in the x register. (The rest of the stack moves down.) To multiply this by four, all you need to do is enter the 4 (because the 5 is already there), and hit the multiplication key. Try it! The remainder of this text describes each of the functions on the calculator keys. Most of them act exactly like their counterparts on an HP calculator. • Alternate Keys: .00 f or gold Push this key to get access to the functions in gold above each key. A small up-arrow will appear in the display. You can also hold down the shift key for the same effect. .01 g or blue Push this key to get access to the functions in blue below each key. A small down-arrow will appear in the display. You can also hold down the option key for the same effect. • Stack Functions: .02 clear registers Clear Registers resets the entire stack to 0. It does not affect the lastx register or stored locations. .0304 rotate stack These functions rotate the four registers up and down. .05 exchange Exchanges the x and y registers. .06 clear x This key clears the x register whether you’re inputting or not. .78 enter Shifts the stack up, making a copy of the x register. The contents of the register at the top of the stack are lost. .08 last x Recalls the x register value from the most recent operation. • Numeric Input: .1011121314151617181907 input Start entering a number by typing it. An underscore will follow the number while inputting mode is in effect. End the input of a number with the ENTER key or a function. .202122232425 hexidecimal input You can enter hexidecimal values A (10) through F (15) with these keys. This version no longer requires you to hold down the shift key while typing the key equivalent. .73 pi This key inserts the value of pi into the x register, just as if you had typed it yourself. .26 exponent Push this key to input an exponent, e.g. 1.34e-10 .27 backspace This key backspaces one character if you are currently inputting a number, or clears the x register if you’re not. .28 change sign Use this key to change the sign of the number in the x register. If you’re entering a number, you can also use this to change the sign of the exponent. • Display Format: .2930 hexidecimal and decimal bases These keys change the base mode so that all numbers are displayed in hexidecimal or decimal format. Both hex and decimal numbers are shown in floating point format, depending on the last FIX or SCI request. .31 binary base Changes the mode of the calculator to display numbers in binary format. Only the integer part of the number is displayed, although the full precision is kept internally. Numerals up to 64 bits long (±9.2e+18) can be displayed. Numbers larger than this are shown as in binary. In FIX format, the actual number of digits with an optional minus sign is shown. In SCI format, all 32 or 64 bits of a two’s complement form are shown. Binary numbers are always entered in FIX style format. .32 scientific notation Sets display to scientific notation (all numbers shown in N.NNNNNe±NNN format). You get to select the number of digits after the decimal point, 0-15. Entering a decimal (.) for the number of digits causes as many as possible to be shown, with trailing zeros removed. .33 fixed point notation Sets display to fixed-point notation (standard NNN.NNN format). You get to select the number of significant digits as before. Any number too large or too small for this format will be shown in scientific notation. • Basic Functions: .34 add Adds the numbers in the x and y registers. .35 subtract Subtracts the number in the y register from the number in the x register and returns the result into x. .36 multiply Multiplies the y register by the x register. .37 divide Divides the number in the y register by the number in the x register and returns the result into x. .38 remainder Modulo gives the remainder after dividing the number in the y register by the number in the x register to yield a whole number. This is equivalent to y - int(y/x)*x. .39 multiplicative inverse Calculates the multiplicative inverse of the number in the x register. .40 power Calculates the power of the x register to the base in the y register. .41 square root Calculates the square root of the value in the x register. .42 square Calculates the square of the value in the x register. You can also type ENTER, X to do the same thing. .43 percent This key returns the percentage in the x register of the value in the y register, but does not remove the value in the y register. So to calculate a 15% tip, you could type 15 % +. .44 absolute value Calculates the absolute value of the x register. .45 fraction Returns the fractional part of the value in the x register. .46 integer Returns the integer part of the value in the x register. • Trancendental Functions: .474849505152 trigonometric functions These keys calculate the corresponding trigonometric functions on the numbers in the x register. Angles are in degrees or radians, depending on the state shown in the display (RAD or DEG). .5354 angle measurement Change the angle mode of the calculator to radians or degrees, respectively. .5556 angle conversions Same as RAD and DEG, but also convert the number in the x register from degrees to radians, or radians to degrees, respectively. .57 natural log Calculates the natural logarithm of the x register. .58 natural exponential Calculates e (the natural logarithm base) to the power in the x register. .59 base 10 logarithm Calculates the base 10 logarithm of the x register. .60 base 10 exponential Calculates 10 to the power in the x register. • Statistics Functions: .61 clear statistics Clear Statistics resets the statistics registers. The statistics registers on this version have names that begin with “stat”, as in “stat xx”. .62 add statistics Add the x and y registers to the statistics database. Also places n (the number of point inputted) in the x register. .63 remove statistics To correct a mistake in statistics data, enter BOTH the x and y incorrect values, then push this key, and re-enter the correct x and y values. .64 average Average puts the mean of the x and y statistics into the x and y registers, respectively. .65 standard deviation Standard deviation puts the standard deviation of the x and y statistics into the x and y registers, respectively. • Probability Functions: .66 factorial Calculates the factorial of the number in the x register. .67 choose Choose gives the number of possible sets of x elements taken from a set of y elements. It’s equal to y!/x!(y-x)!. .68 permute Permutations gives the number of permutations of y elements, when choosing x at a time. It’s equal to y!/(y-x)!. .69 random number Returns a random number between zero and 0x4FFF FFFF. This number is also put into the memory slot named “random”. • Memory Functions: .70 calculator reset Reset clears all of the calculator’s memory locations, as well as the stack. .7172 store and recall Stored memory locations are accessed by name. Names can be up to 13 characters long, and must not begin with a space, +, -, *, or /. A list of names appears on the side of the calculator. You can double click the name to select that register, or type the name yourself. Pressing tab at any time will try to complete what you’ve typed. Typing one of the four basic operations (+, -, *, ÷) before you input the name of the memory adds, subtracts, multiplies, or divides the destination by the source. .80 delete If you decide that you won’t need a particular memory location ever again, you can remove it with this function. You can’t delete the original statistics and random locations. • Miscellaneous stuff .81 zoom This function shrinks the calculator to icon size on the desktop. When you want it again, just click the small calculator and it will zoom back to full size. This is faster than quitting and restarting. You can also double-click the top of the calculator to zoom it. .09 off Turns the calculator off (identical to choosing quit in the file menu). The window position, memory, and stack are remembered between runnings of the calculator. .74 about Gets you here. .75767779 These functions haven’t been written yet. They do not appear on the calculator keys, so don't try assigning key equivalents for them in the key caps editor. Yet. There are plenty of blank spaces on the keys, so if you think of anything you’d REALLY like to see on the calculator, write me at wessler@ai.mit.edu, and I’ll try to put it in on the next version.